package cn.edu.scnu.semart.goods.service;

import cn.edu.scnu.semart.model.goods.Like;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 用户点赞Service接口
 */
public interface LikeService extends IService<Like> {

    /**
     * 点赞商品
     * @param userId 用户ID
     * @param goodsId 商品ID
     * @return 是否成功
     */
    boolean likeGoods(Integer userId, Integer goodsId);

    /**
     * 取消点赞商品
     * @param userId 用户ID
     * @param goodsId 商品ID
     * @return 是否成功
     */
    boolean unlikeGoods(Integer userId, Integer goodsId);

    /**
     * 点赞评论
     * @param userId 用户ID
     * @param commentId 评论ID
     * @return 是否成功
     */
    boolean likeComment(Integer userId, Integer commentId);

    /**
     * 取消点赞评论
     * @param userId 用户ID
     * @param commentId 评论ID
     * @return 是否成功
     */
    boolean unlikeComment(Integer userId, Integer commentId);

    /**
     * 检查是否已点赞商品
     * @param userId 用户ID
     * @param goodsId 商品ID
     * @return 是否已点赞
     */
    boolean isLikedGoods(Integer userId, Integer goodsId);

    /**
     * 检查是否已点赞评论
     * @param userId 用户ID
     * @param commentId 评论ID
     * @return 是否已点赞
     */
    boolean isLikedComment(Integer userId, Integer commentId);

    /**
     * 获取商品点赞数
     * @param goodsId 商品ID
     * @return 点赞数
     */
    Integer getGoodsLikeCount(Integer goodsId);

    /**
     * 获取评论点赞数
     * @param commentId 评论ID
     * @return 点赞数
     */
    Integer getCommentLikeCount(Integer commentId);
} 